package com.haiertvbic.tvnow.protocol;

import java.nio.ByteBuffer;

public class PackageOperation {
	/**
	 * 
	 * @return byteMsg 请求获取地域消息的包体数据<br>
	 */
	public static ByteBuffer groupDeviceInfoPackage() {
		// 声明字节流存储包体信息
		ByteBuffer byteMsg = ByteBuffer.allocate(32);
		return byteMsg;
	}

	/**
	 * 
	 * @return byteMsg 请求电视机当前台号的包体数据<br>
	 */
	public static ByteBuffer groupGetChannelIdPackage() {
		// 声明字节流存储包体信息
		ByteBuffer byteMsg = ByteBuffer.allocate(32);
		return byteMsg;
	}

	/**
	 * 组合换台的包体数据
	 * 
	 * @param deviceType
	 *            设备类型<br>
	 *            PAD/phone 等 Phone= 1 PAD = 2 其他 = 3
	 * @param channelId
	 *            用户频道ID<br>
	 * @param changeChannelNum
	 *            频道换台号<br>
	 * @return byteMsg 请求消息包<br>
	 */
	public static ByteBuffer groupChangeChannelPackage(int devicesType,
			int channelId, int changeChannelNum) {
		ByteBuffer byteMsg = ByteBuffer.allocate(8);
		// 设备类型
		byte[] byteType = new byte[4];
		byteType = ConnectManager.intToByte(devicesType);
		byteMsg.put(byteType);
		// 频道ID
		byte[] temp2 = new byte[2];
		temp2 = ConnectManager.shortToByte((short) channelId);
		byteMsg.put(temp2);
		// 频道号
		temp2 = ConnectManager.shortToByte((short) changeChannelNum);
		byteMsg.put(temp2);
		return byteMsg;
	}

	/**
	 * 获取喜爱频道的包体信息
	 * 
	 * @param type
	 *            查询类型 0：昨天的收视率 1：上周的收视率 2：上月的收视率 4位
	 * @param count
	 *            查询频道的数量 4位
	 * @param reserve
	 *            保留字段 ，可以为空 4位
	 * @return 包体信息
	 */
	public static ByteBuffer groupTvChannelPackage(int type, int count,
			String reserve) {
		// 声明字节流存储包体信息
		ByteBuffer bodyBuffer = ByteBuffer.allocate(12);

		// 将type放入流
		byte[] typeByte = new byte[4];
		typeByte = ConnectManager.intToByte(type);
		bodyBuffer.put(typeByte);

		// 传入查询数量count
		byte[] countByte = new byte[4];
		countByte = ConnectManager.intToByte(count);
		bodyBuffer.put(countByte);

		// 将保留位放入流
		byte[] reserveByte = new byte[4];
		bodyBuffer.put(reserveByte);

		return bodyBuffer;
	}
}
